Minikube vs Kubeadm
Kubeadm 一般用作线上环境. Minikube 是单点 Kube 学习环境, 一般在本机或者虚拟机中部署.
使用 minikube 和 kubectl
1 | minikube start|stop|delete |
查询集群信息
RESTYPE nodes/pods(po)/deployments(deploy)/services(svc)/ReplicaSet(rs)/DaemonSet(ds)
PODNAME 通过 get pods 查看
kubectl get RESTYPE
资源列表kubectl describe RESTYPE
显示资源详细信息kubectl logs PODNAME
查看 pod 日志kubectl exec -it PODNAME 命令
在 pod 中运行命令kubectl delete RESTYPE [NAME|-l LABEL]
删除资源
操作 Deployment
kubectl create deployment deploy-name –image=..
使用 Proxy - 集群与外部网络的映射
kubectl proxy
curl http://localhost:8001/version
操作 Service
- ClusterIP(默认): 对集群内部有效
- NodePort: 使用 NAT 在集群中每个选定 Node 的相同端口上公开 Service. 使用 NodeIP:Port 的方式访问.
- LoadBalancer: 创建外部负载均衡器, 指向 Service 的 IP 地址
- ExternalName:
暴露 Service
kubectl expose deployment/kubernetes-bootcamp –type=”NodePort” –port 8080
1 | minikube ip |
- MasterIP:svc.NodePort
- ServiceIP:svc.Port => svc.TargetPort
- Endpoints(ip:port)
操作 Label 标签
kubectl get pods/services/deployments -l k=v
kubectl label pod/svc/deploy PODNAME k=v
Scale 服务扩缩容
kubectl scale deployments/kubernetes-bootcamp --replicas=4
Rollout 动态升级回滚
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
执行设置镜像的时候, 会更新镜像到指定版本, 同时将当前使用镜像作为 rollout 的上一个版本. 查看当前版本状态, 历史记录(详情)
kubectl rollout status deployments/kubernetes-bootcamp
kubectl rollout history deployments/kubernetes-bootcamp [--revision=4]
回滚到上一个版本
kubectl rollout undo deployments/kubernetes-bootcamp [–to-revision=5]
Delete 清理环境
kubectl delete service/deployment NAME